Electronic storage cabinet

ABSTRACT

A storage container can include at least one movement sensor in or on a frame of the storage container and at least one movement sensor in or on a door of the storage container. A processor can compare outputs of the movement sensors to determine whether the door is open.

INCORPORATION BY REFERENCE TO ANY RELATED APPLICATIONS

Any and all applications, if any, for which a foreign or domesticpriority claim is identified in the Application Data Sheet of thepresent application are hereby incorporated by reference under 37 CFR1.57.

BACKGROUND

Boxes and cabinets used in emergency vehicles contain drugs, and theseboxes and cabinets have mechanical locking mechanisms in place that areintended to prevent people from accessing those drugs. However, it iseasy to pretend to close the lock on these boxes and cabinets whilehaving the door still open, for example by flipping the bayonet of thelocking device over to allow the box and/or cabinet to appear lockedwhen it is not.

In the normal construction of a locked box or cabinet, the assumption isthat when the lock is engaged the box or cabinet is actually locked.However, mechanical gears can be easily manipulated to fool the box orcabinet to think the bolt is engaged while the door is open. Thus, anysensors that are based on the position of mechanical locking mechanismscan also be fooled. In other words, when using only mechanical lockingmechanisms, it is possible to have the bolt extended but for the box orcabinet to not be really locked. For applications where the contents ofthe box or cabinet need to be absolutely secured, mechanical lockinggears are not sufficient.

SUMMARY OF CERTAIN EMBODIMENTS

In certain embodiments, a storage container includes a frame thatdefines a partially enclosed space that can receive medicalpharmaceuticals (or other articles). The frame can define an opening. Adoor can be mounted to the frame so as to be movable between an openposition, whereby access to the medical pharmaceuticals can be obtained,and a closed position whereby the medical pharmaceuticals (or otherarticles) can be secured within the partially enclosed space. A lockingmechanism can secure the door to the frame in the closed position.Further, the a lock verification system of the container can include afirst accelerometer disposed in the door and that can generate a firstoutput, a second accelerometer disposed in the frame and that cangenerate a second output, and a processor programmed to perform acalculation based on the first output and the second output to identifywhether the door is open or closed. In one embodiment, the processor canbe further programmed to: compute a first tilt angle based on the firstoutput, compute a second tilt angle based on the second output, computea difference between the first tilt angle and the second tilt angle, andcompare the computed difference with a threshold to identify whether thedoor is open.

In certain embodiments, the storage container of the preceding paragraphmay be combined with any combination of the following features: theprocessor can be further programmed to filter one or both of the firstoutput and the second output prior to computing the first tilt angle andthe second tilt angle; the container can further include a magneticsensor and a magnet, where one of the magnetic sensor and the magnetdisposed in the door and the other disposed in the frame, such that whenthe door is closed, the magnet is brought into proximity with themagnetic sensor such that the magnetic sensor detects the magnet; themagnetic sensor can include either a reed switch or a Hall effectsensor; the processor can also analyze an output of the magnetic sensorto identify whether the door is open or closed; the processor can alsoobtain the first output and the second output in response to themagnetic sensor detecting the magnet; the processor can also increase asample rate of the first and second accelerometers in response to themagnetic sensor detecting the magnet; the container can also include alock sensor that can detect whether the locking mechanism has actuated;the lock sensor can include a switch; the frame can include a recesshaving one or more ports or holes; the recess can be disposed in a rearportion of the frame opposite a front portion of the frame that connectsto the door; the recess can extend partially along an upper portion ofthe frame; the recess can include one or more of the following: a powercable port, a network cable port, and a wireless antenna port; therecess can be defined by a shelf adjoining two walls, each walladjoining the other, wherein a normal vector to planes defined by theshelf and the two walls are approximately orthogonal to each other; thecabinet can include an upper surface, a bottom surface opposite theupper surface, left and right side surfaces, a rear surface, and a dooropposite the rear surface; and the recess can include a wall extendingdownward from the upper surface partially toward the bottom surface anda shelf extending forward from the rear surface toward the door, whereinthe shelf and the wall intersect to at least partially form the recess.

In certain embodiments, a storage container can include: a frame thatdefines a space configured to receive one or more items, wherein theframe defines an opening; at least one door mounted to the frame so asto be movable between an open position, whereby access to the one ormore items can be obtained, and a closed position whereby the one ormore items can be at least partially enclosed; a locking mechanism thatsecures the at least one door to the frame in the closed position; and alock verification system that can include: at least one first movementsensor disposed in the at least one door and configured to generate afirst output, at least one second movement sensor disposed in the frameand configured to generate a second output, and a processor programmedto perform a calculation based on the first output and the second outputto identify whether the at least one door is open or closed.

In certain embodiments, the storage container of the preceding paragraphmay be combined with any combination of the features described in thepreceding two paragraphs. In certain embodiments, the storage containerof the preceding paragraph may also be combined with any combination ofthe following features: the storage container can be a shippingcontainer; and the storage container can also include one or both of awireless transmitter and a memory that stores data regardingidentifications by the processor of door opening events.

For purposes of summarizing the disclosure, certain aspects, advantages,and novel features of the inventions have been described herein. It isto be understood that not necessarily all such advantages can beachieved in accordance with any particular embodiment of the invention.Thus, the invention can be embodied or carried out in a manner thatachieves or optimizes one advantage or group of advantages as taughtherein without necessarily achieving other advantages as can be taughtor suggested herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The features disclosed herein are described below with reference to thedrawings. The drawings are provided to illustrate embodiments of theinventions described herein and not to limit the scope thereof.

FIG. 1 is a block diagram illustrating one embodiment of a cabinet.

FIG. 2 is a flowchart illustrating one embodiment of a method ofgenerating an access record.

FIGS. 3 and 4 are perspective views of one embodiment of a cabinet.

FIG. 5 is a block diagram illustrating example positions of the door andassociated sensor outputs.

FIG. 6A is a flow chart illustrating an embodiment of anaccelerometer-based door open detection process.

FIG. 6B is a flow chart illustrating an embodiment of a multi-sensordoor open detection process.

FIG. 7 is a front perspective view of an embodiment of a cabinet.

FIG. 8 is a rear perspective view of the cabinet of FIG. 7.

FIG. 9 is a side view of the cabinet of FIG. 7.

FIG. 10 is a rear view of the cabinet of FIG. 7.

FIG. 11 is a top view of the cabinet of FIG. 7.

FIGS. 12 through 14 are perspective views of a frame of the cabinet ofFIG. 7.

FIG. 15 is a perspective view of a door of the cabinet of FIG. 7.

FIG. 16 is a perspective view of an example shipping container that canimplement any of the features described herein.

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS I. Overview

Many secure boxes and cabinets are fabricated from metal. Proximitysensors that communicate electromagnetically, such as through induction,do not operate well or at all with a box or cabinet that comprisesmetal. Furthermore, a proximity sensor that detects metal can be easilyfooled by positioning metal nearby. Thus, there is a need for a lockingvalidation mechanism that can confirm that the mechanical locking isindeed effective, such as by verifying that a door is closed and that alock is engaged, and that can operate in an environment where it issubstantially surrounded by metal.

Also, medical personnel must access the drugs contained in a box orcabinet during the course of duty to administer the drugs to a patientin need. Therefore, these medical personnel must have the ability tounlock the box or cabinet. However, once these medical personnel havethe ability to access the drugs they may remove more of the drugs thanis necessary for legitimate treatment of patients. For example, whenresponding to an emergency call, an emergency medical technician (EMT)may engage in an authorized access of the drugs in the box or cabinetbut may remove more drugs than are needed to treat a victim and laterengage in unauthorized use of the extra drugs. Or a health care employeewith access to the cabinet may unlock the cabinet when no other peopleare nearby and remove some of the drugs for unauthorized purposes.

Therefore there is a need for a device that facilitates the auditing ofany access made to the contents of a box or cabinet. Such a device wouldadvantageously help determine who unlocked or opened the box or cabinet.Consequently, the device would help reduce unauthorized use of thecontents of the box or cabinet, which would further reduce the costs ofthe supplier of the contents, for example by reducing the costs ofstocking the box or cabinet with pharmaceuticals. The device would alsohelp reduce the risk of injury to users who may be engaging inunauthorized use of the contents by impairing the access of such usersto the contents.

Existing medical cabinets have many flaws that compromise their abilityto track unauthorized accesses. Many cabinets have electronic lockingmechanisms that are actuated by a user, for instance an EMT or paramedicwho needs to access controlled substances in the security cabinet. Manycabinets do not have adequate safety measures to prevent unauthorizedaccess. Even existing cabinets that do have such mechanisms often areinadequate because these mechanisms are either easily compromised, aredifficult to manufacture, or simply do not work as well as intended.

It is possible to dispose a magnet and a corresponding magnetic sensorin a door and frame of a cabinet. The magnetic sensor can sense when thedoor is opening or closing based on movement of the magnet (e.g., in thedoor) away from the magnetic sensor. However, a magnetic sensor caneasily be defeated by passing a separate magnet near the magnetic sensorto fool the magnetic sensor into indicating that the box is closed.

More complex electromagnetic sensors also have defects. For instance,radiofrequency identification sensors (RFID) may not provide manyadditional benefits over magnetic sensors. While RFID sensors may not beso easily fooled as a magnetic sensor, they require tight tolerances tofunction properly, and thus often fail to do so. For instance, onecurrently available cabinet incorporates an RFID sensor in a frame and acorresponding RFID sensor in a door. When the door is closed, the twosensors are brought into proximity, and door closure is theoreticallydetected. But in order to detect door closure, the two sensors must bepositioned very close together, and manufacturing tolerances may resultin imprecise sensor positioning. In addition, wireless sensors are ofteninaccurate. Accordingly, there may be inconsistent data transfer betweenRFID sensors.

Advantageously, in certain embodiments, this disclosure describesdifferent sensors that can be used in a storage cabinet, such as amedical cabinet, which may overcome some or all of the deficiencies ofexisting sensors. In one embodiment, an accelerometer may be placed inthe door of the cabinet or box and another accelerometer may be placedin the frame of the box. A processor can analyze outputs of the twoaccelerometers to ascertain whether the door is open or closed. Forinstance, the processor can compare differences in the outputs from eachaccelerometer to confirm whether the door is open. In one embodiment,the processor calculates tilt angles based on the output of eachaccelerometer and compares a difference between the tilt angles with athreshold to determine whether the door has tilted open or closed.

If the box were installed in a stationary location, such as in ahospital or other clinical facility, a single accelerometer in the doormay be sufficient to determine whether the door is opened or closed. Abox in such a fixed location may generally rely on the stationary forceof gravity applied to the sensor in order to ascertain door openings.But many such boxes are placed in emergency medical vehicles, likeambulances. As a vehicle travels, acceleration of the vehicle andchanges in terrain may cause different forces other than the force ofgravity to be applied to the accelerometer. Accordingly, a single sensormay be insufficient to confirm whether the box is open. However, ifaccelerometers are present in both the frame and door, then the outputof these two (or more) accelerometers can be compared to generallycancel out sensor fluctuations created by vehicle movement or variationsin terrain travelled by the vehicle.

The accelerometers can advantageously be hidden from a user, since theymay be placed anywhere in the door and the frame. In particular, sinceaccelerometers detect gravitational and other acceleration forces, whichare not blocked by the metal material of most cabinets, theaccelerometers need not be exposed to users. Further, accelerometers maybe more accurate at indicating door opening than RFID sensors.

The embodiments described are not limited to medical storage cabinets,but can generally be applied to any container. For ease of illustration,however, this specification primarily focuses on medical storage cabinetexamples. Toward the end of this specification, an additional example inthe form of a shipping container is also provided. Additional examplesof containers that can implement the features described herein includesafes, lock boxes (e.g., that hold keys for emergency personnel access),any cabinet (e.g., on a vehicle, ship, plane, or other movingconveyance, or even in a building or typically stationary area), and thelike.

II. Example Medical Cabinet

Reference will now be made to the drawings, wherein like numerals referto like parts throughout. FIG. 1 is a block diagram illustrating oneembodiment of a secure box or cabinet 100 for holding items such aspharmaceutical products. The cabinet 100 includes a frame 103 thatcreates a storage space, for example for storing pharmaceuticalproducts. The cabinet 100 also includes a door 105 mounted to the frame103. The door 105 may be opened to allow access to the contents of theframe 103 or closed to restrict access to the contents of the frame 103.The frame 103 and/or door 105 may be made of materials that are durableenough to resist an attempt to physically breach the cabinet 100, and inone embodiment are made of a metal, such as, for example, steel oraluminum. The door 105 and frame 103 also include a locking mechanism tosecure the door 103 in the closed position to prevent access to thecontents of the cabinet 100. The locking mechanism may be any suitablelock and may be operated by any suitable interface, for example,mechanical key, mechanical combination, biometric data, electronic key,keypad, or a touch screen interface.

The cabinet 100 may be mounted in any suitable location, including in aclinical facility or emergency vehicle (such as an ambulance). However,uses for the cabinet 100 extend beyond the medical field. The cabinet100 may be used in any suitable application where security and trackingaccess to the cabinet 100 is useful, including, for example, as evidencelockers in police stations or police vehicles.

In FIG. 1, the cabinet 100 also includes a lock verification system. Thelock verification system can include a first sensor 110 that is mountedin the frame 103 and a second sensor 112 that is mounted in the door105. The sensors 110, 112 may be movement sensors, such asaccelerometers, gyroscopes, tilt sensors, global positioning sensors(GPS), other position sensors, or the like. For convenience, theremainder of the specification will refer to the sensors 110, 112 asaccelerometers. However, it should be understood that in each instancewhere accelerometers are described, other similar movement sensors maybe used in their place.

In one embodiment, each accelerometer is a 1, 2, or 3-axisaccelerometer. For convenience, this specification will refer toembodiments using 2-axis and 3-axis accelerometers. However, it shouldbe understood that a single-axis accelerometer can be used in someembodiments. In one embodiment, the door accelerometer (sensor 112)outputs a signal which may be converted to a tilt-angle by a processor(CPU 120). Similarly, the processor 120 may convert an output signalfrom the frame accelerometer (sensor 110) into a tilt angle. If the tiltangles are the same or similar between the door and the box, then theprocessor 120 may consider the door to be closed. However, if theprocessor 120 detects a difference (e.g., above a threshold) in tiltangle between the door and the frame accelerometers, then the processor120 can indicate that the door has been opened. The processor 120 mayprovide this indication on a display on the box, to a separate devicewithin wireless range, or may output this indication over a network 108for presentation to a user of an administrative system 102.

Advantageously, in certain embodiments, because the cabinet 100 includesaccelerometers in both the door 105 and the frame 103, the relativeposition between those accelerometers is the quantity the processor 120analyzes to determine whether the door is open. Taking the difference ofthe accelerometer outputs can reduce the effects of noise on each sensorfrom vehicle position or movement or other vibrational noise. Becausethe accelerometers can be placed anywhere within the door 105 or frame103 (as gravity works through metal, unlike electromagnetic fields),they may perform detection of door opening or closing more accuratelythan RFID sensors that must be brought in proximity to one another inorder to work. Because the accelerometers may be hidden from view, auser may not be able to easily find them and tamper with them, unlikeother types of sensors. For similar reasons, the user may not be able totamper with the accelerometers like a mechanical switch or magneticsensor. Accordingly, in certain embodiments, accelerometers disposed inthe door 105 and frame 103 of the cabinet 100 can provide a moreaccurate solution for determining door open and close events fortracking and auditing purposes.

The embodiment in FIG. 1 also includes a lock sensor 160. The locksensor 160 detects the actuation state of the lock and generates asignal that indicates if the lock is actuated and/or if the lock is notactuated. For example, if the lock includes bolts that are extended whenthe lock is actuated, the lock sensor 160 detects when the bolts areextended and may generate a signal indicating the extension of thebolts. Also, the lock sensor 160 may generate a signal that indicatesthat the bolts are not extended.

Further, in one embodiment, the sensor 110 can be a magnetic sensor andthe sensor 112 may be replaced with a magnet. The magnetic sensor may bereed switch, Hall effect sensor, or the like, which can detect when themagnet in the door 105 is close. The position of the sensors may bereversed such that the magnetic sensors in the door 105 and the magnetis in the frame 103. The magnetic sensor may be used to detect dooropening and closing events, much like accelerometers may be used.Further, in one embodiment (see, e.g., FIG. 6B) both the magnetic sensorand corresponding magnet together with accelerometers are disposed inthe cabinet 100. Using both the magnetic sensor and accelerometers canimprove door open and close detection, as described in greater detailbelow.

In the embodiment shown in FIG. 1, the door 105 includes a CPU 120(described above), which may include one or more microprocessors, and aclock 125. The door 105 also includes input/output (I/O) devices andinterfaces 130. The I/O devices and interfaces 130 may allow othercomputing devices to communicate with the cabinet 100 through a wired orwireless link, for example to retrieve data, modify software executablesoftware, or upload data, and may include commonly available interfaces(e.g., USB, Firewire, SCSI, etc.) or a proprietary interface. Also, theI/O devices and interfaces 130 may allow a user to directly communicatewith the cabinet 100. Such interfaces include by way of example keypads,screens, speakers, card readers, and biometric data readers. The cabinet100 may permit communication between the locking mechanism and the I/Odevices and interfaces 130 in order to require a user to provide anidentifier, for example an identification code (e.g. a PIN number) ormagnetic identification card, provide biometric data, and/or providepharmaceutical information, for example, the type and/or quantity of thepharmaceutical being removed from the cabinet, in order to disengage thelocking mechanism.

Also in FIG. 1, the cabinet 100 includes a memory 140. The memory 140may include volatile and/or nonvolatile memory, such as a random accessmemory (“RAM”), a flash memory, and/or a hard drive. The memory 140includes an access record 145. The access record 145 may contain a logof some or all of the instances when the door 105 was secured orunsecured, which may include the instances when the sensors 110, 112detect door opening or closing and the instances when the lockingmechanism is actuated or de-actuated, as well as the times of theinstances. The log may be a time log indicating the date and time thecabinet 100 was secured or unsecured. The memory 140 may also includeadditional data, for example data related to control of the inventory ofthe cabinet 100. The additional data may include data regarding thecontents of the cabinet 100, such as type of and quantity ofpharmaceuticals added to the cabinet, the identification of the user whounlocked the cabinet 100 at a particular time (e.g., based on that userusing their individual code to access the cabinet 100), a log of theperson responsible for the cabinet at a given time (e.g., doctor, nurse,ambulance driver, emergency medical technician), and the type andquantity of pharmaceutical that the authorized person indicated wasbeing removed during an access of the contents of the cabinet.

In the embodiment of FIG. 1, the cabinet 100 includes a tracking module150. In general, the term “module,” in addition to having its ordinarymeaning, is used herein to refer to logic embodied in hardware,firmware, and/or software, such as software instructions or programcode. The tracking module 150 may be executed by the CPU 120 todetermine if the sensors 110, 112 detect a door opening or closingand/or determine if there is a change in the state of the actuation ofthe lock (based on input from the lock sensor 160). In one embodiment,the tracking module 150 is implemented in a real-time operating system(RTOS) or other operating system executing on the CPU 120.

The tracking module 150 may receive a signal from one or both of thesensors 110, 112 indicating a change in the sensors' values, and/or thetracking module 150 may intermittently or periodically poll the sensors110, 112. The tracking module 150 may also receive a signal generated bythe lock sensor 160, for example by polling the lock sensor 160. Also,the tracking module may access the clock 125 to determine the time itreceived any signal or performed any polling. The tracking module 150may determine that the door 103 is secured when the sensors 110, 112detect a closed-door and the lock sensor 160 indicates that the lock isactuated. The tracking module 150 may store any of this information inthe access record 145 stored in the memory 140.

Although not shown, the cabinet 100 may also include a backup batterythat allows the processor 122 to continue to monitor the state of thedoor 105 even when power is no longer provided externally to the cabinet100. Advantageously, in certain embodiments, the sensors 110, 112 may beselected to reduce power requirements and thereby save battery life,promoting increased security in power outage situations. For instance,accelerometers may use less power than RFID sensors. The optionalmagnetic sensor may be a reed sensor instead of a Hall effect sensor fora similar reason, as reed sensors do not typically require power tooperate.

FIG. 2 is a flowchart illustrating one embodiment of a process 200 ofgenerating an access record. The process 200 may be implemented by theCPU 120 described above. More generally, the process 200 may beimplemented by any cabinet described herein, or the like.

At block 210, a change is detected in the status of a door or the statusof a lock. For example, a lock may transition from locked to unlocked orvice versa, or a door may transition from open to closed or vice versa.If a change in the status of the door or lock is detected, the process200 proceeds to block 220.

At block 220, a determination is made if the state of the door haschanged between open and closed. Sensors 110, 112 may be used to detectthe change and/or determine if the door is open or closed. If at block220 the door has changed to opened, the process 200 proceeds to block230 where the time that the door was opened is retrieved, and theprocess 200 then proceeds to block 270. If at block 220 the state of thedoor is closed, the process 200 proceeds to block 240.

At block 240, a determination is made if the lock is engaged. Thisdetermination may be based at least in part on the signal from the locksensor. If the lock is not engaged, the process 200 proceeds to block250. At block 250, a determination is made if the lock was previouslyengaged or if the door was previously open. If the lock was previouslyengaged, the time the lock was disengaged is retrieved. If the door waspreviously open, the time the door was closed is retrieved and theprocess 200 proceeds to block 270. At block 260, the time that the doorwas locked is retrieved, and the process 200 proceeds to block 270. Theprocessor may generate the record of the door being closed prior todetermining whether the lock is engaged in state 240.

At block 270, a record is generated indicating the change in the statusof the door or lock and the time of the change, for example bygenerating or adding information to the access record 145. In oneembodiment, the record indicates if the door is secure or unsecure, forexample when both the door is closed and the lock is engaged, though inother embodiments the record may indicate the individual statuses of thelock and the door. If the record only indicated that the door wassecured or unsecured, after retrieving the time that the door was lockedat block 260, at block 270 a record would be generated indicating thatthe door was secured as the of time retrieved at block 260, and afterretrieving the time at blocks 250 or 230 a record would be generatedindicating that the door was unsecured as of the time retrieved at block250 or 230.

This record may later be retrieved and used to determine the times thatthe door 105 was secured or unsecured and opened or closed and/or thetimes that the lock was engaged or disengaged. This recordadvantageously allows the later auditing of the accesses of the contentsof the cabinet 100, such as to determine who accessed the contents ofthe cabinet and what was removed from the cabinet.

FIGS. 3 and 4 are perspective views of one embodiment of an examplecabinet 100 with open door 105. The space 107 created by the frame 103is also illustrated in FIGS. 3 and 4. The door 105 includes one or moreengaging member 370, which may comprise a bolt, for example. The frame103 includes one or more receptacles 380 that correspond to the engagingmembers 370 and that can receive the engaging members 370. When the door105 is in the closed position relative to the frame 103 and the lock isengaged, the engaging members 370 are positioned within thecorresponding receptacles 380, thereby securing the door 105 in thelocked position. The sensors 110, 112 are not shown in FIGS. 3 and 4because accelerometers, for instance, may be hidden from view. Magneticsensors may also be hidden or at least partially hidden from view.

III. Example Accelerometer Usage

Example usages of accelerometers in a cabinet will now be described withrespect to FIGS. 5 through 6B. FIG. 5 depicts three example scenarios501, 502 and 503 in which an example cabinet 500 (side view) is shown.The cabinet 500 includes a frame 523 and a door 505 in each scenario501, 502, 503. The cabinet 500 schematically represents anotherembodiment of the cabinet 100 described above.

Each scenario 501, 502 and 503 depicts the door 505 of the cabinet 500in a different state. In the scenario 501, the door 505 of the cabinet500 is closed. In the scenario 502, the door 505 has started to openslightly, and in the scenario 503, the door 505 has opened almostcompletely. Each scenario is also shown together with a coordinate plane510, 512, or 514. Each coordinate plane 510, 512, or 514 depicts avector 513 that depicts an example output of the accelerometer in thedoor 505 for each scenario 501, 502 and 503.

Each coordinate plane 510, 512, 514 is represented as a coordinate planewith x- and z-axes representing x- and z-axes of a three-axisaccelerometer. As described above, accelerometers with one or two axesmay be used in some embodiments to perform the features describedherein. Nevertheless, for illustration purposes, FIG. 5 depicts theoutput of a three-axis accelerometer. In some embodiments,accelerometers sense gravitational (g) forces in one or more axes. Inaddition, accelerometers in the cabinet may experience accelerationforces from movement of the vehicle housing the cabinet, vibrations inthe road, and the like. Nevertheless, for ease of description, thefollowing description will refer solely to the static gravitationalforce or acceleration detected by the sensor. The effective dynamicacceleration from a moving vehicle or the like on the sensor may beapproximately canceled out by subtracting the outputs of the two sensors(or subtracting tilt angles calculated from the outputs of the twosensors) as described below with respect to FIG. 6A.

The force of gravity reference is represented as the vector 513 on eachcoordinate plane 510, 512, 514. The force of gravity has a scalar valuerepresented by −1 g, which has a standard acceleration of −9.8 metersper second (m/s) (the negative sign representing downward accelerationtoward the earth). This force of gravity acts on the accelerometerregardless of the position of the accelerometer. (Although the force ofgravity is not uniform over the surface of the earth, for most purposesit may be considered uniform as an approximation.)

Manipulating the accelerometer output along the two axes shown in thecoordinate systems 510, 512 and 514, using for example trigonometry (orone or more stored trigonometric table(s)), a processor in the cabinet500 can determine the tilt angle of the door 505. This tilt angle isrepresented by the Greek letter theta (θ) in scenarios 502 and 503.Although not shown, the tilt angle in scenario 501 would be 90 degreesbecause the tilt angle is drawn with respect to a vertical axis and ahorizontal axis (the vertical axis being approximately parallel to theface of the door in the closed position and the horizontal axis beingapproximately parallel to the bottom surface of the cabinet 500).

In the scenario 501, the door is closed, and on the coordinate plane510, the x- and z-axis outputs are as follows: z=−1 g; x=0. Theseoutputs result in the gravity acceleration vector 513 pointing straightdown along the z-axis. In the scenario 502, the door 505 is openslightly, and the position of the accelerometer is represented by thecoordinate plane 512. There, the z-axis is tilted in parallel with thedoor 505, representing the position of the accelerometer within the door505. The x-axis is also tilted and is perpendicular with the x-axis. Theforce of gravity represented by the vector 513 still points down and hasa magnitude of 1 g, representing what the sensor detects as the door istilted open. As the door rotates down, the sensor sees an increase alongthe x-axis and a decrease along the z-axis.

The tilt angle θ may be computed by taking the arctangent (inversetangent) of x divided by z, as shown in equation (1):θ=arctan(x/z)  (1)The x and z vectors are shown superimposed next to the door 505 to showhow θ can be calculated using the arctangent. For example, if x=0.2 andz=0.98, the tilt angle θ may be found as follows:θ=arctan(1.2/0.98)  (2)which equals 11 degrees.

In the scenario 503, with the door 505 almost completely open, thecoordinate plane 514 is also tilted to be nearly completely open(representing the position of the accelerometer within the door 505).The vector 513 still points downward in the direction of gravity. In anexample, if x=0.985 in this scenario and z=0.174, the tilt angle isapproximately 80 degrees using equation (1) described above.

In certain embodiments, the accelerometer within the frame 523 in eachof the example scenarios 501, 502 and 503 outputs the same values ineach scenario because the frame 523 has not moved. Rather, the door 505has moved causing change to the output of the accelerometer. In idealscenarios where noise is not present, the output of the accelerometer inthe frame 523 would be a constant value. In a real-world scenario,noise—including noise due to motion of the cabinet 500—would cause theaccelerometer values to fluctuate.

Ignoring noise for now (discussed below), the output of theaccelerometer in the door 505 may be compared with the output of theaccelerometer in the frame 523 to determine whether the box is open. Forinstance, the tilt angle can be calculated for both the accelerometer inthe door 505 and in the frame 523. If there is a difference betweenthese two angles, then the door may be considered to be open (oropening), assuming that the accelerometers in the door 505 and in theframe 523 are oriented in the same direction. If they are oriented indifferent directions, then the outputs of the accelerometers can bemanipulated mathematically to determine whether the door is open orotherwise moving.

The example scenario of FIG. 5 depicts the door 505 opening from the topof the door and swinging downward. This is merely one example type ofdoor that can implement the features described herein. Other doors thatmay implement the features described herein can open from the bottom,swinging upwards, or open from the side, swinging horizontally outwards.Likewise, double doors may be used in some cabinets (e.g., each swinginghorizontally outwards, or with one swinging vertically upwards and oneswinging vertically downwards). An example double door scenario isdescribed below with respect to FIG. 16.

Turning to FIG. 6A, an example door open detection process 600 is shown.The door open detection process 600 may be implemented by any of thecabinets described herein. For example, the processor 120 (e.g.,implementing the tracking module 150) may implement the process 600.

At block 602, the processor reads the door and frame accelerometers. Atblock 603, the processor optionally filters the output of the door andframe accelerometers. The filtering process may include any filteringthat attenuates or otherwise reduces noise in the accelerometer signals.Reducing noise can attenuate the effects of noise on the calculation ofthe tilt angle output from each sensor. Typical sources of noise includevibration from the vehicle that may house the cabinet as well as generalvibration sources within the earth.

The filter may be a low-pass filter, an averaging filter, a medianfilter, or the like. The filter may be implemented using digital signalprocessing techniques. In one embodiment, the processor 120 in thecabinet is a digital signal processor (DSP). In one embodiment, multipleprocessors are included in the box: a processor devoted to digitalsignal processing functionality and a general-purpose processor thatperforms other functionality associated with door opening detection andthe management of the cabinet. Further, a separate processor may bededicated to calculating tilt angles from the accelerometers. Thisseparate processor may be part of a package including an accelerometer(and may be considered a tilt sensor by some sensor vendors).

At block 604, the processor computes door and frame tilt angles. Forinstance, the processor may compute tilt angles using the techniquesdescribed above with respect to FIG. 5 or other suitable mathematicaltechniques. At block 606, the processor compares the door and frame tiltangles. If the difference between these angles is greater than athreshold (block 608), the processor determines that the door is open atblock 610. In one embodiment, the threshold is about 0.5 degrees,although other values may be chosen. A value too small risks falsedetections, while a value too large risks the door opening enough thatsomeone can stick an object (e.g., to grab drugs) within a gap formedbetween the frame and the opening door. Otherwise the process 600 loopsback to block 602 and continues to periodically read or poll the doorand frame accelerometers.

At block 608, the difference between the door and frame tilt angles maybe considered greater than some tolerance or threshold. If the thresholdis too small or if no threshold were used, sensor noise, or variationsin the sensor outputs, could cause the processor to generate false,fluctuating readings indicating that the door is frequently opening andclosing. In other embodiments, precision sensors may be used at perhapsgreater expense to the manufacturer of the cabinet, and a meredifference between those sensors may trigger an indication that the dooris open, or the threshold or tolerance for that difference may bereduced. In one prototype, the accuracy of the accelerometers is suchthat a difference of 20 mils (about 0.5 mm) can be detected inpositioning of the door. It is envisioned that with higher precisionaccelerometers that greater precision in detecting door movement may beachieved.

In some embodiments, the processor may poll the door and frameaccelerometers frequently, e.g., many times within a given period oftime so that a door opening event may be detected readily. If it isdesired to reduce the load on the processor that such polling wouldentail, the frequency of the polling can be reduced. Reducing the loadon the processor may be desirable because the processor may beperforming multiple functions other than detecting door openings,including performing audit trail functions, handling communications,receiving user input as to what substances are removed from or added tothe cabinet, and the like. However, in some embodiments, it may bedesirable not to reduce the processor's polling frequency so low as tomiss an unauthorized access of the cabinet. Accordingly, in someembodiments polling may occur as frequently as many cycles per second oras infrequently as once about every 100 ms to about 500 ms. It isestimated that a person may be able to open a box and remove itscontents within about a second or two. Thus, in some embodiments, it maybe desirable not to sample or poll the sensors less frequently thanabout once per second or about once every 500 ms.

Depending on the type of sensor, very fast sampling may be performed,such as 32 Hz or greater, creating a large number of samples per second.A large number of samples can be useful for filtering out noise. Inanother embodiment, (see, e.g., below with respect to FIG. 6B) theaccelerometers are polled infrequently by the processor, but if theprocessor detects a door opening event by another sensor, then theprocessor reads values from the accelerometers. In another embodiment,the processor increases the sample rate or poll rate of theaccelerometers in response to some external event such as detecting thatthe door is beginning to open from some other sensor (see FIG. 6B).

Further, in some embodiments, the processor can compare the outputs ofthe accelerometers directly instead of calculating tilt angles. Forexample, the processor can compute a difference between the raw outputfor each axis of each accelerometer and determine whether the differencefor one or more axes exceeds the threshold. If the threshold isexceeded, the processor can indicate that the door was opened. Forinstance, the processor can compute the difference between the valuesoutput by the x-axes of the two accelerometers and can compute thedifference between the two z-axes of the accelerometers. If eitherdifference calculation exceeds a threshold, the processor could indicatethat the door is open. The processor may also filter the raw output fromeach accelerometer prior to performing this difference calculation.Processing raw outputs and avoiding tilt angle calculations can saveprocessing resources and reduce power usage.

Moreover, if the cabinet is stored in a stationary location, such as ina building instead of a vehicle, processing may be simplified. A singleaccelerometer may be located in the door. The processor can detect adoor opening by identifying when one axis of the accelerometer changesvalue significantly (e.g., above a threshold). If a two or three axisaccelerometer is used, the processor can detect door opening byidentifying when one axis increases in value (e.g., above a threshold)while another axis decreases in value (e.g., below this threshold). (Ofcourse, a second accelerometer may also be included in the frame, andthe processor can compare the outputs of the second accelerometer withthe accelerometer in the door.)

Turning to FIG. 6B, another example process 650 is shown. The process650 is a multi-sensor door open detection process that combines theinput of three separate sensors to analyze door openings, closings andlocking events. Like the process 600 of FIG. 6A, the process 650 of FIG.6B can be implemented by any processor of any of the cabinets describedherein. The process 650 may further be implemented by the trackingmodule 150 in the processor.

At block 652, the processor polls a door detector, which may be, forexample, a magnetic sensor. The magnetic sensor may be, for example, amagnetometer, a reed switch or Hall Effect sensor. The magnetic sensormay be placed in the frame near the portion of the door that contactsthe frame when the door is closed and that swings away from the framewhen the door is opened. A corresponding magnet may be located in thedoor, such that when the door is closed, the magnet is brought intoproximity with the magnetic sensor. In some embodiments, the magnet islocated in the frame and the magnetic sensor is located in the doorinstead.

When the door moves away from the frame, the magnetic sensor or doordetector can detect that the door has moved away. One example purpose ofthe door detector is to further confirm the door has been opened orclosed in addition to (or sometimes instead of) based on the informationobtained from the accelerometers. As an alternative or additionaloption, an RFID sensor may be used. Regardless, having multiple sensorsdetect door opening (and closing) can advantageously provide redundancyin case a sensor is compromised due to component failure or due totampering.

Additionally, at block 652 the processor infrequently polls theaccelerometers. In one embodiment, it can be advantageous toinfrequently poll the accelerometers because the processor haspotentially multiple tasks to perform, and reducing the amount ofpolling performed by the processor can reduce the load on the processor.Of course, in other embodiments, a separate microcontroller or processorcan be used to poll and calculate accelerometer values more frequentlyand output these values to the processor when the situation warrants,such as when the door detector detects a door opening (or closing).Thus, for example, if the processor determines at block 654 that a dooropening has been detected, it uses the accelerometers to confirm thedoor opening at block 656. Block 656 represents performing the processof FIG. 6A or the like. In one embodiment, in response to a door openingbeing detected 654, the processor can increase the sampling rate of theaccelerometers so that they gather more data per second.

Further, in one embodiment, the processor prioritizes informationobtained from the accelerometers instead of the door detector, since thedoor detector may be spoofed or fooled more easily by a user with amagnet. Thus, if the processor identifies the door closed condition fromthe door detector but a door open condition from the accelerometers, theprocessor can output an indication that the door is open. Likewise, insome embodiments, the processor indicates a door opening if eithersensor (door detector or accelerometers) detects a door opening.

Once the door opening is confirmed, the processor may move the lock inthe door to the striker position so that when the door closes the doorwill automatically lock. For instance, the processor can cause bolts inthe door to extend from an unlocked position to a partially-lockedposition halfway to a locked position or fully to a locked position.Moving the bolts to a partially locked position or fully locked positioncan reduce the risk that the door will be closed without being locked.For instance, in one embodiment the bolts have chamfered edges orotherwise angled edges that permit them to be pushed downward againstthe frame while being closed, and which then spring forward into alocked position.

At block 660, the processor determines whether a door closure has beendetected. For example, the processor can access the door detector and/orthe accelerometers to make this determination. If the processor does notdetect door closure, the process 650 loops back to block 660 andcontinues to poll the door detector and/or accelerometers. If the dooris open too long, then the processor may report that the door has beenopen too long and report a potential tamper event to the administrativeuser(s). If the door closure was detected at block 660, then at block662 the processor can determine whether the door lock sensor detects thedoor being locked. The door lock sensor may be a sensor that determineswhether the motor has moved the bolt(s) to the locked position. Forexample, a switch can be actuated by movement of the bolt(s) into thelocked position, or an encoder in the motor can be read by the processorto determine whether the motor has moved the bolt(s) to the lockedposition. If the door lock sensor indicates that the door is locked, theprocess 650 loops back to block 652. Otherwise, the process at block 664reports an error to the administrative user(s) and/or on a display ofthe cabinet and may reattempt to lock the door (e.g., after a period oftime being unlocked, such as 5 seconds, for safety reasons). A report ofa door opening may also occur at block 656. Further, at block 660, theprocessor may report to an administrator or on the display of thecabinet an error if the door has been open for too long, such as longerthan a predetermined time.

For convenience, the door opening detection algorithms herein aredescribed primarily with respect to a single door opening vertically,but they may be equally applicable to a side-opening door or to a doubledoor, or to a cabinet with any number of doors. With multiple doors,each door can have an accelerometer or other motion sensor (see otherexamples above) installed therein, and the algorithms described hereincan operate with respect to each door.

IV. Recess Embodiments

Turning to FIGS. 7 through 14, another example cabinet 700 is shown. Thecabinet 700 may include all of the features of the cabinet 100 and thecabinet 500 described above and may implement any of the processes 200,600, 650 described above. In the depicted embodiment, the cabinet 700includes a recess 710 in the rear of the cabinet. The recess 710 canenable cables to be directed out of the cabinet and above or to eitherside of the cabinet without having to require holes to be drilled forthe cables in multiple locations.

In some prior cabinets that do not have the recess 710, the cabinets areordered by customers with specific requests for mounting hole and/orcable hole locations. Cable holes in these prior cabinets could bedrilled in the sides of the cabinet, the top, or the rear of the cabinetand may be used to conduct power cable and antenna and other cables orwires out of the cabinet. A power cable can supply power to the cabinetto control circuitry including the processor and associated circuitryand sensors described above as well as the motor. (Although the cabinetcan be battery operated, it may be more secure for the cabinet to bepowered by an external power source which may be supplied from the walloutlet or from a vehicle that the cabinet is installed in.)

Because cabinets may be installed in different vehicles or buildingswhich have different mounting configurations, it can be desirable tomake the cabinet so that it can go in multiple different mountinglocations without requiring holes to be drilled specifically for eachcabinet in different locations. A problem has occurred where cabinetswould be ordered without specifying the correct cable holes (e.g., holeswould be drilled where cables could not go, such as against a wall),causing a customer to have to return a cabinet. With the recess 710,cables can be snaked out of the back of the recess to the side, directlyto the back, or over the top of the cabinet to the other side of thecabinet—thus addressing this problem at least in part.

As shown in FIGS. 7 through 11, the recess 710 is depicted in the uppersurface 704 of the cabinet 700. The upper wall 704 of the cabinet is agood location for the recess 710 in one embodiment because it allowsextensive configurability of different cable locations. The recess 710can also extend all the way to the wall 706 of the cabinet on one sideof the cabinet, but in the depicted embodiment does not extend all theway to the opposite wall of the cabinet so as to provide an increasedstorage capacity of the cabinet. It is conceivable that for differentsized cabinets, the recess 710 may be smaller or larger. For instance,the recess 710 may extend along the entire back length of the cabinet.The recess 710 may also be positioned at the bottom of the cabinet oraround one of the sides of the cabinet instead of in the back of thecabinet.

With reference to FIGS. 7 through 11, the recess 710 is defined in oneembodiment by a wall 712, a shelf 716, and a wall 714. The shelf 716 andthe wall 712 are of a sufficient width to enable cables to be snaked outof the cabinet without the cables being pinched against the wall towhich the rear of the cabinet is mounted. For instance, in oneembodiment the shelf 716 has a depth of about 1.5 inches (about 3.8 cm).The size of the shelf 716 can be driven by the size of the cables and/orantenna used to connect to the back of the cabinet 700. If smallercables and/or antenna are used, the shelf 716 may be narrower in depth.Likewise, the height of the wall 714 may be smaller or larger dependingon the size of the cables and/or antenna used.

With respect to FIG. 8, connectors 820 are shown sticking out of thewall 714 of the recess 710. These connectors may include, for example, apower connector to connect to a power cable and a wired communicationsconnector to connect to Ethernet or similar networking cable. A void 822is shown for connecting to an optional antenna. The antenna can be usedfor wireless communication to communicate audit information from theprocessor or for other wireless communications purposes. The void 822 isoptional in some embodiments as the antenna may be internal to thecabinet (e.g., may be a microstrip antenna on a circuit board or thelike). The void 822 may be covered with a plastic material which iselectrically invisible to the antenna to permit wireless communicationsto exit and enter the cabinet (which may otherwise be made of metal).

Referring specifically to FIG. 10, screw holes 1002 are provided thatenable a printed circuit board to be affixed to the inner side of thewall 714 of the recess 710. This circuit board is described with respectto FIG. 13 below. Turning to FIG. 12, the inside of the frame 703 isshown with walls 1212 and 1216 corresponding to the inside of walls 712and 716 described above, respectively. A cover 1210 is provided to covera circuit board shown in FIG. 13, which is also screwed onto the circuitboard and to the wall 1214 (inside of wall 714) via the screw holes1002. In addition, an optional light 1220 is shown (an LED or the like),which can provide any of a variety of indications to a user.

Turning to FIG. 13, the printed circuit board 1310 is shown, which isunderneath the cover 1210 of FIG. 12. This circuit board 1310 is anexample circuit board that can include the accelerometer for the frame703, as well as circuitry for power and wireless communications. In someembodiments, any portion of the door circuitry described in FIG. 1 maybe implemented on the circuit board 1310 instead of or in addition to inthe door. The processor described above may be located on this circuitboard 1310 or may be located on the circuit board in the door describedbelow with respect to FIG. 15. FIG. 14 shows the circuit board 1310removed so as to show the inner side of the recess formed by the recesswalls 1212, 1214 and 1216. Voids 1420 and 1422 are shown which can beused to convey power communications and optional antenna ports and/orcables out of the cabinet.

Turning to FIG. 15, an example door 705 corresponding to the doorsdescribed above is shown. The door includes circuit board 1510 that caninclude any of the electronic circuitry described herein, including anaccelerometer for the door. The location of the circuit board 1510 maybe unimportant with respect to the accelerometer. The accelerometercould be located in any portion of the door. In addition, a motor isshown 1520 which can actuate the locking bolts that extend from the dooras shown and described above with respect to FIGS. 3 and 4. The circuitboard 1510, motor 1520, and other components shown can be covered with acover (see, e.g., FIG. 3).

V. Example Shipping Container Embodiment

As described above, the embodiments described herein are not limited tomedical storage cabinets, but can generally be applied to any container.For example, any of the features described above can be applied to ashipping container.

To that end, FIG. 16 depicts an example shipping container 1600 that canimplement any of the features described herein. The shipping container1600 may be any size shipping container, including, but not limited to,10′, 20′, 40′, 53′, and custom sized containers. The container includestwo doors 1602 attached to a main body 1601. The doors 1602 can swingoutward, away from a longitudinal axis of the container.

Electronics circuits 1610 are shown in phantom line, representingelectronics in each of the doors 1602. The electronics circuits 1610 caninclude accelerometers or other movement sensors, other examples ofwhich were described above. In addition, an electronic circuit 1620 isshown in phantom inside the container 1600, visible via an examplecutaway 1608 (shown for illustrative purposes only). In this embodiment,the electronic circuit 1620 internal to the container 1600 is installedin the rear of the container 1600. However, the electronic circuit 1620can be installed in other locations in or on the container 1600 in otherembodiments. Similarly, the location of either of the circuits 1610 inthe doors may be changed. In some embodiments, electronics need not bein all the doors.

The electronic circuits 1610, 1620 can implement any of the algorithmsdescribed above to determine whether or not either of the doors 1602 hasbeen opened. In an embodiment, one or more of the circuits 1610, 1620includes a wireless transmitter and associated antenna that cancommunicate data regarding door openings to a remote location, such asto a server accessible to a company that owns or uses the shippingcontainer 1600. One or more of the circuits 1610, 1620 can also includea memory that stores data regarding door openings, among other data.

VI. Additional Embodiments

In various embodiments, there may be more than two movement sensors usedin any embodiment. There may be more than two accelerometers in the doorand more than two accelerometers in the frame. In another embodiment,one or more accelerometers are used in the door, and none are used inthe frame.

VII. Terminology

The features described herein can be implemented together with anysubcombination of the features described in U.S. Pat. No. 8,339,261,titled “System and Method of Monitoring the Door of a Secure Cabinet ForHolding Pharmaceutical Products,” filed Jul. 1, 2009, the disclosure ofwhich is hereby incorporated by reference in its entirety.

Many other variations than those described herein will be apparent fromthis disclosure. For example, depending on the embodiment, certain acts,events, or functions of any of the algorithms described herein can beperformed in a different sequence, added, merged, or left out altogether(e.g., not all described acts or events are necessary for the practiceof the algorithms). Moreover, in certain embodiments, acts or events canbe performed concurrently, e.g., through multi-threaded processing,interrupt processing, or multiple processors or processor cores or onother parallel architectures, rather than sequentially. In addition,different tasks or processes can be performed by different machinesand/or computing systems that can function together.

The various illustrative logical blocks, modules, and algorithm stepsdescribed in connection with the embodiments disclosed herein can beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, and stepshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. The described functionality can be implemented invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the disclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor can be a microprocessor,but in the alternative, the processor can be a controller,microcontroller, state machine, combinations of the same, or the like. Aprocessor can also be implemented as a combination of computing devices,e.g., a combination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. Although described hereinprimarily with respect to digital technology, a processor may alsoinclude primarily analog components. For example, any of the signalprocessing algorithms described herein may be implemented in analogcircuitry. A computing environment can include any type of computersystem, including, but not limited to, a computer system based on amicroprocessor, a mainframe computer, a digital signal processor, aportable computing device, a personal organizer, a device controller,and a computational engine within an appliance, to name a few.

The steps of a method, process, or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module executed by a processor, or in acombination of the two. A software module can reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a harddisk, a removable disk, a CD-ROM, or any other form of non-transitorycomputer-readable storage medium, media, or physical computer storageknown in the art. An example storage medium can be coupled to theprocessor such that the processor can read information from, and writeinformation to, the storage medium. In the alternative, the storagemedium can be integral to the processor. The processor and the storagemedium can reside in an ASIC. The ASIC can reside in a user terminal. Inthe alternative, the processor and the storage medium can reside asdiscrete components in a user terminal.

Conditional language used herein, such as, among others, “can,” “might,”“may,” “e.g.,” and the like, unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain embodiments include, while other embodiments donot include, certain features, elements and/or states. Thus, suchconditional language is not generally intended to imply that features,elements and/or states are in any way required for one or moreembodiments or that one or more embodiments necessarily include logicfor deciding, with or without author input or prompting, whether thesefeatures, elements and/or states are included or are to be performed inany particular embodiment. The terms “comprising,” “including,”“having,” and the like are synonymous and are used inclusively, in anopen-ended fashion, and do not exclude additional elements, features,acts, operations, and so forth. Also, the term “or” is used in itsinclusive sense (and not in its exclusive sense) so that when used, forexample, to connect a list of elements, the term “or” means one, some,or all of the elements in the list. Further, the term “each,” as usedherein, in addition to having its ordinary meaning, can mean any subsetof a set of elements to which the term “each” is applied.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it will beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As will berecognized, certain embodiments of the inventions described herein canbe embodied within a form that does not provide all of the features andbenefits set forth herein, as some features can be used or practicedseparately from others.

What is claimed is:
 1. A container comprising: a frame that defines astorage space and includes an opening capable of receiving itemsstorable within the storage space; a door mounted to the frame so as tobe movable between an open position that permits access to the storagespace and a closed position that prevents access to the storage space;and a lock verification system comprising: a first accelerometerdisposed in the door and configured to generate a first signal, a secondaccelerometer disposed in the frame and configured to generate a secondsignal, and a processor programmed to determine a motion of thecontainer based at least in part on the first signal and the secondsignal, and to determine whether the door is open based at least in parton a comparison between the first signal and the second signal, whereinthe processor is further configured to negate acceleration of a vehiclecontaining the container from the determination of whether the door isopen by subtracting one of the first signal or the second signal fromthe other of the first signal or the second signal.
 2. The container ofclaim 1, wherein the processor samples at least one of the firstaccelerometer or the second accelerometer at a sampling rate of at least32 Hz.
 3. The container of claim 1, wherein the processor samples atleast one of the first accelerometer or the second accelerometer at afirst sampling rate.
 4. The container of claim 3, wherein the processorsamples at least one of the first accelerometer or the secondaccelerometer at a second sampling rate that is faster than the firstsampling rate upon occurrence of a door opening event.
 5. The containerof claim 4, wherein the container further comprises a sensor assembly,and wherein the processor is configured to detect the door opening eventbased on a signal generated by the sensor assembly.
 6. The container ofclaim 5, wherein the sensor assembly comprises a magnetic sensor and amagnet, and wherein one of the magnetic sensor or the magnet is attachedto the frame and the other of the magnetic sensor or the magnet isattached to the door.
 7. The container of claim 6, wherein the magneticsensor comprises a reed sensor or a Hall effect sensor.
 8. The containerof claim 4, wherein the hardware processor is further configured toprioritize the first signal and the second signal over an output of thesensor assembly when a discrepancy is detected in determining whetherthe door is open.
 9. The container of claim 1, wherein the firstaccelerometer is a one, two, or three axis accelerometer.
 10. Thecontainer of claim 1, wherein the processor is further configured todetermine whether the door is open by at least: determining a first tiltangle based on the first signal; determining a second tilt angle basedon the second signal; and determining whether a difference between thefirst tilt angle and the second tilt angle exceeds a threshold.
 11. Thecontainer of claim 1, further comprising a filter configured to filternoise from the first signal generated by the first accelerometer. 12.The container of claim 1, further comprising a locking mechanismconfigured to secure the door to the frame in the closed position. 13.The container of claim 12, further comprising a lock sensor configuredto detect an actuation state of the locking mechanism.
 14. The containerof claim 1, wherein the container further comprises a storage device,and wherein the processor is further configured to store in the storagedevice state information associated with the door.
 15. A containercomprising: a frame that defines a storage space and includes an openingcapable of receiving items storable within the storage space; a doormounted to the frame so as to be movable between an open position thatpermits access to the storage space and a closed position that preventsaccess to the storage space; and a lock verification system comprising:a first motion sensor disposed in the door and configured to generate afirst signal, a second motion sensor disposed in the frame andconfigured to generate a second signal, and a processor programmed todetermine a motion of the frame based at least in part on the firstsignal and the second signal, and to determine whether the door is openbased at least in part on the motion of the frame.
 16. The container ofclaim 15, wherein, upon occurrence of a door opening event, theprocessor modifies a sampling rate at which it samples at least one ofthe first motion sensor or the second motion sensor.
 17. The containerof claim 15, wherein the processor is further configured to negateacceleration of a vehicle containing the container from thedetermination of whether the door is open by subtracting the firstsignal from the second signal.
 18. The container of claim 15, whereinthe processor is further configured to determine whether the door isopen by at least: determining a first tilt angle based on the firstsignal; determining a second tilt angle based on the second signal; anddetermining whether a difference between the first tilt angle and thesecond tilt angle exceeds a threshold.
 19. The container of claim 15,further comprising a lock sensor configured to detect an actuation stateof a locking mechanism of the container.
 20. A container comprising: aframe that defines a storage space and includes an opening capable ofreceiving items storable within the storage space; a door mounted to theframe so as to be movable between an open position that permits accessto the storage space and a closed position that prevents access to thestorage space; and a lock verification system comprising: a firstaccelerometer disposed in the door and configured to generate a firstsignal, a second accelerometer disposed in the frame and configured togenerate a second signal, and a processor programmed to determine amotion of the container based at least in part on the first signal andthe second signal, and to determine whether the door is open based atleast in part on a comparison between the first signal and the secondsignal, wherein the processor samples at least one of the firstaccelerometer or the second accelerometer at a first sampling rate,wherein the processor samples at least one of the first accelerometer orthe second accelerometer at a second sampling rate that is faster thanthe first sampling rate upon occurrence of a door opening event, whereinthe container further comprises a sensor assembly, wherein the processoris configured to detect the door opening event based on a signalgenerated by the sensor assembly, wherein the sensor assembly comprisesa magnetic sensor and a magnet, and wherein one of the magnetic sensoror the magnet is attached to the frame and the other of the magneticsensor or the magnet is attached to the door.